package com.itheima.demo02interface;

import java.util.function.Predicate;

public class Demo08PredicateAndOrNegate {
    public static void main(String[] args) {
        test((String str) -> {
            return str.contains("W");
        }, (String str) -> {
            return str.contains("H");
        });

        test2((String str) -> {
            return str.contains("W");
        }, (String str) -> {
            return str.contains("H");
        });

        test3((String str) -> {
           return str.contains("W");
        });
    }

    // 使用Lambda表达式判断一个字符串中即包含W,也包含H
    public static void test(Predicate<String> p1, Predicate<String> p2){
        String str = "Hello World";
        boolean result = p1.and(p2).test(str);
        if(result){
            System.out.println("1---字符串中即包含W,也包含H");
        }else {
            System.out.println("1---不符合条件");
        }
    }

    // 使用Lambda表达式判断一个字符串中包含W或者包含H
    public static void test2(Predicate<String> p1, Predicate<String> p2){
        String str = "Hello World";
        boolean result = p1.or(p2).test(str);
        if(result){
            System.out.println("2---字符串中包含W或者包含H");
        }else {
            System.out.println("2---不符合条件");
        }
    }

    // 使用Lambda表达式判断一个字符串中即不包含W
    public static void test3(Predicate<String> predicate){
        String str = "Hello World";
        boolean result = predicate.negate().test(str);
        if(result){
            System.out.println("3---字符串中即不包含W");
        }else {
            System.out.println("3---不符合条件");
        }
    }
}
